home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD 2.1 / Amiga Developer CD v2.1.iso / NDK / NDK_3.5 / Tutorials / ARexx / FunctionLibrary / Source / rexxsamplebase.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-10-04  |  1.6 KB  |  73 lines

  1. /*
  2.  * $Id: rexxsamplebase.h 1.1 1997/06/25 18:46:44 olsen Exp $
  3.  *
  4.  * ARexx sample library
  5.  *
  6.  * :ts=4
  7.  */
  8.  
  9.     /* Header files we require. */
  10.  
  11. #include <exec/execbase.h>
  12. #include <exec/resident.h>
  13. #include <dos/dosextens.h>
  14.  
  15. #include <rexx/rxslib.h>
  16. #include <rexx/errors.h>
  17.  
  18. #include <clib/rexxsyslib_protos.h>
  19. #include <clib/utility_protos.h>
  20. #include <clib/exec_protos.h>
  21. #include <clib/dos_protos.h>
  22.  
  23. #include <pragmas/exec_sysbase_pragmas.h>
  24. #include <pragmas/rexxsyslib_pragmas.h>
  25. #include <pragmas/utility_pragmas.h>
  26. #include <pragmas/dos_pragmas.h>
  27.  
  28. #include <string.h>
  29. #include <stddef.h>
  30.  
  31. /****************************************************************************/
  32.  
  33.     /* The sample library base. */
  34.  
  35. struct RexxSampleBase
  36. {
  37.     struct Library            rsb_Library;
  38.  
  39.     struct SignalSemaphore    rsb_Semaphore;
  40.     BPTR                    rsb_Segment;
  41.  
  42.     struct Library *        rsb_SysBase;
  43.     struct Library *        rsb_DOSBase;
  44.     struct Library *        rsb_UtilityBase;
  45.     struct Library *        rsb_RexxSysBase;
  46. };
  47.  
  48. #define SysBase        RexxSampleBase->rsb_SysBase
  49. #define DOSBase        RexxSampleBase->rsb_DOSBase
  50. #define UtilityBase    RexxSampleBase->rsb_UtilityBase
  51. #define RexxSysBase    RexxSampleBase->rsb_RexxSysBase
  52.  
  53. /****************************************************************************/
  54.  
  55.     /* Function table entry. */
  56.  
  57. typedef LONG (* REXXCMD)(STRPTR *,LONG *,struct RexxSampleBase *);
  58.  
  59. struct RexxCmd
  60. {
  61.     STRPTR    Name;        /* Function name. */
  62.     LONG    NumArgs;    /* Number of arguments required. */
  63.  
  64.     REXXCMD    Cmd;        /* Handler function. */
  65. };
  66.  
  67. /****************************************************************************/
  68.  
  69.     /* Handy macros. */
  70.  
  71. #define ASM        __asm
  72. #define REG(x)    register __ ## x
  73.